package com.day6.test10_Lambda;

import java.util.Random;

/**
 * @author 小坡
 * @date 2022/9/8  16:09
 **/
public class RandomNumHandlerDome {
    /*
    1.首先存在一个接口 ( RandomNumHandler)
    2．在该接口中存在一个抽象方法(getNumber)，该方法是无参数但是有返回值
    3．在测试类(RandomNumHandLerDemo）中存在一个方法(useRandomNumHandLer)
        方法的的参数是RandomNumHandLer类型的
        在方法内部调用了RandomNumHandler的getNumber方法
    * */
    public static void main(String[] args) {
        use(new RandomNumHandler() {
            @Override
            public int getNumber() {
                Random random = new Random();
                int num = random.nextInt(10) + 1;   // 产生一个1-10之间的随机数
                return num;
// 注意 如果lambda操作的接口中的方法有返回值 ，一定要通过return语句将结果返回
//                否则编译错误
            }
        });
        use(() -> {
            Random random = new Random();
            int num = random.nextInt(10) + 1;   // 产生一个1-10之间的随机数
            return num;
        });
    }

    public static void use(RandomNumHandler randomNumHandler) {
        int result = randomNumHandler.getNumber();
        System.out.println(result);
    }
}

interface RandomNumHandler {
    int getNumber();//定义这个返回值为int类型的
}